「數字」就是我們常見的阿拉伯數字,但在 Python 裡,數字又分成「整數」、「浮點數」( 小數 ) 和「底數」,數字可以進行各種數學式的運算,也可以進行各種邏輯比較、時間表達等以數字為主的運算。
原文參考:數字 number
本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )
整數 integer,表示沒有分數或小數點的十進位數字,使用 type 查看整數的「型別」,可以得到「int」的型別。
type(5)  # int
整數可以透過下方數學式進行一般的算數計算,並依循「先乘除後加減」的規則。
| 運算子 | 說明 | 範例 | 結果 | 
|---|---|---|---|
| + | 加法 | 1+2 | 3 | 
| - | 減法 | 20-12 | 8 | 
| * | 乘法 | 2*3 | 6 | 
| / | 除法 | 9/2 | 4.5 | 
| // | 除法取整數 ( 無條件捨去 ) | 9//2 | 4 | 
| % | 餘數 | 9%2 | 1 | 
| ** | 次方 | 2**3 | 8 | 
3 + 2          # 5
3 + 2 * 2      # 7
( 3 + 2 ) * 2  # 10
如果整數的運算會產生小數點,結果就會轉換成浮點數。
type(3/2)  # float
進行整數的運算時,需要注意數字的「開頭」不能為 0 ( 除非是「底數」 ),如果整數開頭為 0,執行時會出現錯誤。

如果要讓一個數值等於「整數」,可以使用「int 函式」來進行型態的轉換,int 函式也會將小數點的部分無條件捨棄、將數字字串轉換成數字,或將布林值轉換成 1 或 0。
int(5.1)   # 5
int(9/2)   # 4
int('5')   # 5
int('+2')  # 2
int(True)  # 1
int(False) # 0
int 函式也可以進行二進制、八進制、十六進制的轉換。
- 十進制:0~9,當 10 的時候會進一位。
- 二進制:只有 1 和 0,當 2 的時候會進一位,變成 10,3 則是 11。
- 八進制:0~7,當 8 的時候會進一位,變成 10,9 則是 11。
- 十六進制:0~15 ( 10~15 由 A~F 表示 ),當 16 的時候會進一位,變成 10,11 則是 17。
int('101', 2)  # 5   二進制
int('101', 8)  # 65  八進制
int('101', 16) # 257 十六進制
注意,如果 int 轉換的是「字串」或「有小數點數字的字串」,就會發生錯誤。

浮點數 float,表示包含小數點的十進位數字,使用 type 查看整數的「型別」,可以得到「float」的型別,從下方的程式可以看到,只要數值包含了小數點,就算是 1.0 或 0.0,都會是「浮點數 float」的型別 ( 注意,由於計算機有位元數限制,有小數點的數字最多只有 15 位有效數字 )。
type(5.1) # float
type(1.0) # float
type(0.0) # float
如果使用浮點數和整數進行運算 ( 或和布林值運算 ),得到的結果會是浮點數。
1.0 + 5      # 6.0
1.0 + True   # 2.0
1.0 + False  # 1.0
浮點數可以透過「float 函式」將整數、數字文字或布林值,轉換成浮點數的數字。
float(5)     # 5.0
float('5')   # 5.0
float('5.1') # 5.1
float(True)  # 1.0
float(False) # 0.0
底數是在數字的前方,加入 0b、0o 或 0x 的底數,來表示二進制、八進制或十六進制的數字,在「位元級」的模式下,往往是使用二進制、八進制或十六進制進行操作。
| 底數 | 代表 | 
|---|---|
| 0b 或 0B | 二進制 | 
| 0o 或 0O | 八進制 | 
| 0x 或 0X | 十六進制 | 
0b1111 # 15 ( 二進制 )
0o1111 # 585 ( 八進制 )
0x1111 # 4369 ( 十六進制 )
「布林 Bool」只有 True 和 False 兩個值,通常 True 可以表示為 1,Fasle 可以表示為 0,透過特殊函示 bool() 可以將任何資料型態轉換成布林,布林主要運用在邏輯判斷中,可以根據得到的布林值,作出對應的動作,在之後的許多範例中,都可以看見布林的應用。
下列「非 0 數字」會轉換為 True:
bool(True)  # True
bool(1)     # True
bool('ok')  # True
bool(-1)    # True
下列「0 值數字」會轉換為 False:
bool(False)  # False
bool(0)      # False
bool(0.0)    # False
大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我有個超過一千篇教學的 STEAM 教育學習網,有興趣可以參考下方連結呦~ ^_^